The present invention relates to a storage system that stores data that is employed by a computer and that receives updating of data from a computer, and in particular relates to processing for maintaining copies of data between a plurality of storage systems.
In Laid-open European Patent Application No. 0672985, a technique is disclosed whereby the data that is employed by a computer is stored by a storage system and a copy of this data is stored in a separate storage system arranged at a remote location, while reflecting the write sequence of the data. In the processing indicated in Laid-open European Patent Application No. 0672985, the source storage system that has received the write data from the primary host computer reports completion of reception of the write data to the primary host computer only after reception of the write data. After this, the primary host computer reads a copy of the write data from the source storage system. A write time, which is the time at which the write request in respect of the write data was issued, is applied to this write data and, when the write data is read by the primary host computer, the write time is also transferred to the primary host computer. In addition, the primary host computer transfers the write data and the write time to the secondary host computer. After receiving the write data and the write time, the secondary host computer writes information including the write time to a control volume in the storage system on the secondary side and, in addition, writes the write data in the target storage system in the write time sequence, with reference to the write times at which the various items of write data were presented. By writing the write data in the target storage system in the write time sequence, it is possible to maintain consistent data in the target storage system.
If write data were to be reflected to the target storage system neglecting the write sequence (the operation of storing write data in the target storage system will hereinbelow be referred to as “reflecting” the data), for example in the case of a bank account database, in processing to transfer funds from an account A to an account B, it would not be possible to reproduce the debiting of the account A and the crediting of the account B as a single transaction and it would be possible for example for a period to occur in the target storage system in which the balance of the account B was credited before debiting of the balance of the account A. If, in this case, some fault occurred in the source storage system rendering it unusable prior to debiting the balance of the account A in the target storage system, mismatching data would be left in the target storage system, with the result that incorrect processing would be performed if business were to be subsequently continued using the secondary host computer. Consequently, by storing the write data in the target storage system preserving the write sequence, consistent data can be maintained, making it possible to guarantee correctness of a sequence of related operations in respect of related data.
U.S. Pat. No. 6,092,066 discloses a technique whereby the data that is used by a computer is stored in a storage system and, by copying the data that is stored in this storage system to a separate storage system arranged at a remote location, the data can be maintained in the separate storage system even if the first storage system has become unusable due to for example a natural disaster or fire.
U.S. Pat. No. 6,209,002 discloses a technique whereby data employed by a computer is stored in a storage system and, by copying the data that is stored in this storage system to a separate storage system arranged at a remote location, and additionally copying the data that has been received by this separate storage system to a third storage system, a high level of redundancy can be obtained in respect of data.